航行日志

Nginx 设置WordPress伪静态化Rewrite规则

用Apache2没有碰到这个问题,WordPress可以自动配置。到了Nginx,虽然在WordPress里设置了重写规则,单实际却没有起效,文章链接直接就失效了。

应该是rewrite规则的问题。

在server部分加入
[php] try_files $uri $uri/ /index.php?q=$uri&$args;[/php]

意思是把所有不存在的文件和目录,全都转到 index.php 处理

这样,我要求的效果就达到了。

不过这样一直会出现 /index.php

如果用rewrite方式可以这样写

[php]

rewrite ^./files/(.)$ /wp-includes/ms-files.php?file=$1 last;

if (!-e $request_filename) {

rewrite ^.+?(/wp-.*) $1 last;

rewrite ^.+?(/.*.php)$ $1 last;

rewrite ^ /index.php last;

}

[/php]